package com.zj.fx.model.info;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import cn.hutool.core.util.StrUtil;

/**
 * 业务附件表 InfoFileExample
 *
 * @author SQL_自动生成
 * @date 2023-06-21 13:56:00
 */
public class InfoFileExample {

    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public InfoFileExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }


        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(String value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(String value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(String value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(String value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(String value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(String value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLike(String value) {
            addCriterion("id like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotLike(String value) {
            addCriterion("id not like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<String> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<String> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(String value1, String value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(String value1, String value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }


        public Criteria andLocationPathIsNull() {
            addCriterion("location_path is null");
            return (Criteria) this;
        }

        public Criteria andLocationPathIsNotNull() {
            addCriterion("location_path is not null");
            return (Criteria) this;
        }

        public Criteria andLocationPathEqualTo(String value) {
            addCriterion("location_path =", value, "locationPath");
            return (Criteria) this;
        }

        public Criteria andLocationPathNotEqualTo(String value) {
            addCriterion("location_path <>", value, "locationPath");
            return (Criteria) this;
        }

        public Criteria andLocationPathGreaterThan(String value) {
            addCriterion("location_path >", value, "locationPath");
            return (Criteria) this;
        }

        public Criteria andLocationPathGreaterThanOrEqualTo(String value) {
            addCriterion("location_path >=", value, "locationPath");
            return (Criteria) this;
        }

        public Criteria andLocationPathLessThan(String value) {
            addCriterion("location_path <", value, "locationPath");
            return (Criteria) this;
        }

        public Criteria andLocationPathLessThanOrEqualTo(String value) {
            addCriterion("location_path <=", value, "locationPath");
            return (Criteria) this;
        }

        public Criteria andLocationPathLike(String value) {
            addCriterion("location_path like", value, "locationPath");
            return (Criteria) this;
        }

        public Criteria andLocationPathNotLike(String value) {
            addCriterion("location_path not like", value, "locationPath");
            return (Criteria) this;
        }

        public Criteria andLocationPathIn(List<String> values) {
            addCriterion("location_path in", values, "locationPath");
            return (Criteria) this;
        }

        public Criteria andLocationPathNotIn(List<String> values) {
            addCriterion("location_path not in", values, "locationPath");
            return (Criteria) this;
        }

        public Criteria andLocationPathBetween(String value1, String value2) {
            addCriterion("location_path between", value1, value2, "locationPath");
            return (Criteria) this;
        }

        public Criteria andLocationPathNotBetween(String value1, String value2) {
            addCriterion("location_path not between", value1, value2, "locationPath");
            return (Criteria) this;
        }


        public Criteria andFileUrlIsNull() {
            addCriterion("file_url is null");
            return (Criteria) this;
        }

        public Criteria andFileUrlIsNotNull() {
            addCriterion("file_url is not null");
            return (Criteria) this;
        }

        public Criteria andFileUrlEqualTo(String value) {
            addCriterion("file_url =", value, "fileUrl");
            return (Criteria) this;
        }

        public Criteria andFileUrlNotEqualTo(String value) {
            addCriterion("file_url <>", value, "fileUrl");
            return (Criteria) this;
        }

        public Criteria andFileUrlGreaterThan(String value) {
            addCriterion("file_url >", value, "fileUrl");
            return (Criteria) this;
        }

        public Criteria andFileUrlGreaterThanOrEqualTo(String value) {
            addCriterion("file_url >=", value, "fileUrl");
            return (Criteria) this;
        }

        public Criteria andFileUrlLessThan(String value) {
            addCriterion("file_url <", value, "fileUrl");
            return (Criteria) this;
        }

        public Criteria andFileUrlLessThanOrEqualTo(String value) {
            addCriterion("file_url <=", value, "fileUrl");
            return (Criteria) this;
        }

        public Criteria andFileUrlLike(String value) {
            addCriterion("file_url like", value, "fileUrl");
            return (Criteria) this;
        }

        public Criteria andFileUrlNotLike(String value) {
            addCriterion("file_url not like", value, "fileUrl");
            return (Criteria) this;
        }

        public Criteria andFileUrlIn(List<String> values) {
            addCriterion("file_url in", values, "fileUrl");
            return (Criteria) this;
        }

        public Criteria andFileUrlNotIn(List<String> values) {
            addCriterion("file_url not in", values, "fileUrl");
            return (Criteria) this;
        }

        public Criteria andFileUrlBetween(String value1, String value2) {
            addCriterion("file_url between", value1, value2, "fileUrl");
            return (Criteria) this;
        }

        public Criteria andFileUrlNotBetween(String value1, String value2) {
            addCriterion("file_url not between", value1, value2, "fileUrl");
            return (Criteria) this;
        }


        public Criteria andFileSizeIsNull() {
            addCriterion("file_size is null");
            return (Criteria) this;
        }

        public Criteria andFileSizeIsNotNull() {
            addCriterion("file_size is not null");
            return (Criteria) this;
        }

        public Criteria andFileSizeEqualTo(Integer value) {
            addCriterion("file_size =", value, "fileSize");
            return (Criteria) this;
        }

        public Criteria andFileSizeNotEqualTo(Integer value) {
            addCriterion("file_size <>", value, "fileSize");
            return (Criteria) this;
        }

        public Criteria andFileSizeGreaterThan(Integer value) {
            addCriterion("file_size >", value, "fileSize");
            return (Criteria) this;
        }

        public Criteria andFileSizeGreaterThanOrEqualTo(Integer value) {
            addCriterion("file_size >=", value, "fileSize");
            return (Criteria) this;
        }

        public Criteria andFileSizeLessThan(Integer value) {
            addCriterion("file_size <", value, "fileSize");
            return (Criteria) this;
        }

        public Criteria andFileSizeLessThanOrEqualTo(Integer value) {
            addCriterion("file_size <=", value, "fileSize");
            return (Criteria) this;
        }

        public Criteria andFileSizeLike(Integer value) {
            addCriterion("file_size like", value, "fileSize");
            return (Criteria) this;
        }

        public Criteria andFileSizeNotLike(Integer value) {
            addCriterion("file_size not like", value, "fileSize");
            return (Criteria) this;
        }

        public Criteria andFileSizeIn(List<Integer> values) {
            addCriterion("file_size in", values, "fileSize");
            return (Criteria) this;
        }

        public Criteria andFileSizeNotIn(List<Integer> values) {
            addCriterion("file_size not in", values, "fileSize");
            return (Criteria) this;
        }

        public Criteria andFileSizeBetween(Integer value1, Integer value2) {
            addCriterion("file_size between", value1, value2, "fileSize");
            return (Criteria) this;
        }

        public Criteria andFileSizeNotBetween(Integer value1, Integer value2) {
            addCriterion("file_size not between", value1, value2, "fileSize");
            return (Criteria) this;
        }


        public Criteria andFileNameIsNull() {
            addCriterion("file_name is null");
            return (Criteria) this;
        }

        public Criteria andFileNameIsNotNull() {
            addCriterion("file_name is not null");
            return (Criteria) this;
        }

        public Criteria andFileNameEqualTo(String value) {
            addCriterion("file_name =", value, "fileName");
            return (Criteria) this;
        }

        public Criteria andFileNameNotEqualTo(String value) {
            addCriterion("file_name <>", value, "fileName");
            return (Criteria) this;
        }

        public Criteria andFileNameGreaterThan(String value) {
            addCriterion("file_name >", value, "fileName");
            return (Criteria) this;
        }

        public Criteria andFileNameGreaterThanOrEqualTo(String value) {
            addCriterion("file_name >=", value, "fileName");
            return (Criteria) this;
        }

        public Criteria andFileNameLessThan(String value) {
            addCriterion("file_name <", value, "fileName");
            return (Criteria) this;
        }

        public Criteria andFileNameLessThanOrEqualTo(String value) {
            addCriterion("file_name <=", value, "fileName");
            return (Criteria) this;
        }

        public Criteria andFileNameLike(String value) {
            addCriterion("file_name like", value, "fileName");
            return (Criteria) this;
        }

        public Criteria andFileNameNotLike(String value) {
            addCriterion("file_name not like", value, "fileName");
            return (Criteria) this;
        }

        public Criteria andFileNameIn(List<String> values) {
            addCriterion("file_name in", values, "fileName");
            return (Criteria) this;
        }

        public Criteria andFileNameNotIn(List<String> values) {
            addCriterion("file_name not in", values, "fileName");
            return (Criteria) this;
        }

        public Criteria andFileNameBetween(String value1, String value2) {
            addCriterion("file_name between", value1, value2, "fileName");
            return (Criteria) this;
        }

        public Criteria andFileNameNotBetween(String value1, String value2) {
            addCriterion("file_name not between", value1, value2, "fileName");
            return (Criteria) this;
        }


        public Criteria andFkSubjectIsNull() {
            addCriterion("fk_subject is null");
            return (Criteria) this;
        }

        public Criteria andFkSubjectIsNotNull() {
            addCriterion("fk_subject is not null");
            return (Criteria) this;
        }

        public Criteria andFkSubjectEqualTo(String value) {
            addCriterion("fk_subject =", value, "fkSubject");
            return (Criteria) this;
        }

        public Criteria andFkSubjectNotEqualTo(String value) {
            addCriterion("fk_subject <>", value, "fkSubject");
            return (Criteria) this;
        }

        public Criteria andFkSubjectGreaterThan(String value) {
            addCriterion("fk_subject >", value, "fkSubject");
            return (Criteria) this;
        }

        public Criteria andFkSubjectGreaterThanOrEqualTo(String value) {
            addCriterion("fk_subject >=", value, "fkSubject");
            return (Criteria) this;
        }

        public Criteria andFkSubjectLessThan(String value) {
            addCriterion("fk_subject <", value, "fkSubject");
            return (Criteria) this;
        }

        public Criteria andFkSubjectLessThanOrEqualTo(String value) {
            addCriterion("fk_subject <=", value, "fkSubject");
            return (Criteria) this;
        }

        public Criteria andFkSubjectLike(String value) {
            addCriterion("fk_subject like", value, "fkSubject");
            return (Criteria) this;
        }

        public Criteria andFkSubjectNotLike(String value) {
            addCriterion("fk_subject not like", value, "fkSubject");
            return (Criteria) this;
        }

        public Criteria andFkSubjectIn(List<String> values) {
            addCriterion("fk_subject in", values, "fkSubject");
            return (Criteria) this;
        }

        public Criteria andFkSubjectNotIn(List<String> values) {
            addCriterion("fk_subject not in", values, "fkSubject");
            return (Criteria) this;
        }

        public Criteria andFkSubjectBetween(String value1, String value2) {
            addCriterion("fk_subject between", value1, value2, "fkSubject");
            return (Criteria) this;
        }

        public Criteria andFkSubjectNotBetween(String value1, String value2) {
            addCriterion("fk_subject not between", value1, value2, "fkSubject");
            return (Criteria) this;
        }


        public Criteria andFkRecordIsNull() {
            addCriterion("fk_record is null");
            return (Criteria) this;
        }

        public Criteria andFkRecordIsNotNull() {
            addCriterion("fk_record is not null");
            return (Criteria) this;
        }

        public Criteria andFkRecordEqualTo(String value) {
            addCriterion("fk_record =", value, "fkRecord");
            return (Criteria) this;
        }

        public Criteria andFkRecordNotEqualTo(String value) {
            addCriterion("fk_record <>", value, "fkRecord");
            return (Criteria) this;
        }

        public Criteria andFkRecordGreaterThan(String value) {
            addCriterion("fk_record >", value, "fkRecord");
            return (Criteria) this;
        }

        public Criteria andFkRecordGreaterThanOrEqualTo(String value) {
            addCriterion("fk_record >=", value, "fkRecord");
            return (Criteria) this;
        }

        public Criteria andFkRecordLessThan(String value) {
            addCriterion("fk_record <", value, "fkRecord");
            return (Criteria) this;
        }

        public Criteria andFkRecordLessThanOrEqualTo(String value) {
            addCriterion("fk_record <=", value, "fkRecord");
            return (Criteria) this;
        }

        public Criteria andFkRecordLike(String value) {
            addCriterion("fk_record like", value, "fkRecord");
            return (Criteria) this;
        }

        public Criteria andFkRecordNotLike(String value) {
            addCriterion("fk_record not like", value, "fkRecord");
            return (Criteria) this;
        }

        public Criteria andFkRecordIn(List<String> values) {
            addCriterion("fk_record in", values, "fkRecord");
            return (Criteria) this;
        }

        public Criteria andFkRecordNotIn(List<String> values) {
            addCriterion("fk_record not in", values, "fkRecord");
            return (Criteria) this;
        }

        public Criteria andFkRecordBetween(String value1, String value2) {
            addCriterion("fk_record between", value1, value2, "fkRecord");
            return (Criteria) this;
        }

        public Criteria andFkRecordNotBetween(String value1, String value2) {
            addCriterion("fk_record not between", value1, value2, "fkRecord");
            return (Criteria) this;
        }


        public Criteria andImportantMemoIsNull() {
            addCriterion("important_memo is null");
            return (Criteria) this;
        }

        public Criteria andImportantMemoIsNotNull() {
            addCriterion("important_memo is not null");
            return (Criteria) this;
        }

        public Criteria andImportantMemoEqualTo(String value) {
            addCriterion("important_memo =", value, "importantMemo");
            return (Criteria) this;
        }

        public Criteria andImportantMemoNotEqualTo(String value) {
            addCriterion("important_memo <>", value, "importantMemo");
            return (Criteria) this;
        }

        public Criteria andImportantMemoGreaterThan(String value) {
            addCriterion("important_memo >", value, "importantMemo");
            return (Criteria) this;
        }

        public Criteria andImportantMemoGreaterThanOrEqualTo(String value) {
            addCriterion("important_memo >=", value, "importantMemo");
            return (Criteria) this;
        }

        public Criteria andImportantMemoLessThan(String value) {
            addCriterion("important_memo <", value, "importantMemo");
            return (Criteria) this;
        }

        public Criteria andImportantMemoLessThanOrEqualTo(String value) {
            addCriterion("important_memo <=", value, "importantMemo");
            return (Criteria) this;
        }

        public Criteria andImportantMemoLike(String value) {
            addCriterion("important_memo like", value, "importantMemo");
            return (Criteria) this;
        }

        public Criteria andImportantMemoNotLike(String value) {
            addCriterion("important_memo not like", value, "importantMemo");
            return (Criteria) this;
        }

        public Criteria andImportantMemoIn(List<String> values) {
            addCriterion("important_memo in", values, "importantMemo");
            return (Criteria) this;
        }

        public Criteria andImportantMemoNotIn(List<String> values) {
            addCriterion("important_memo not in", values, "importantMemo");
            return (Criteria) this;
        }

        public Criteria andImportantMemoBetween(String value1, String value2) {
            addCriterion("important_memo between", value1, value2, "importantMemo");
            return (Criteria) this;
        }

        public Criteria andImportantMemoNotBetween(String value1, String value2) {
            addCriterion("important_memo not between", value1, value2, "importantMemo");
            return (Criteria) this;
        }


        public Criteria andSuffixIsNull() {
            addCriterion("suffix is null");
            return (Criteria) this;
        }

        public Criteria andSuffixIsNotNull() {
            addCriterion("suffix is not null");
            return (Criteria) this;
        }

        public Criteria andSuffixEqualTo(String value) {
            addCriterion("suffix =", value, "suffix");
            return (Criteria) this;
        }

        public Criteria andSuffixNotEqualTo(String value) {
            addCriterion("suffix <>", value, "suffix");
            return (Criteria) this;
        }

        public Criteria andSuffixGreaterThan(String value) {
            addCriterion("suffix >", value, "suffix");
            return (Criteria) this;
        }

        public Criteria andSuffixGreaterThanOrEqualTo(String value) {
            addCriterion("suffix >=", value, "suffix");
            return (Criteria) this;
        }

        public Criteria andSuffixLessThan(String value) {
            addCriterion("suffix <", value, "suffix");
            return (Criteria) this;
        }

        public Criteria andSuffixLessThanOrEqualTo(String value) {
            addCriterion("suffix <=", value, "suffix");
            return (Criteria) this;
        }

        public Criteria andSuffixLike(String value) {
            addCriterion("suffix like", value, "suffix");
            return (Criteria) this;
        }

        public Criteria andSuffixNotLike(String value) {
            addCriterion("suffix not like", value, "suffix");
            return (Criteria) this;
        }

        public Criteria andSuffixIn(List<String> values) {
            addCriterion("suffix in", values, "suffix");
            return (Criteria) this;
        }

        public Criteria andSuffixNotIn(List<String> values) {
            addCriterion("suffix not in", values, "suffix");
            return (Criteria) this;
        }

        public Criteria andSuffixBetween(String value1, String value2) {
            addCriterion("suffix between", value1, value2, "suffix");
            return (Criteria) this;
        }

        public Criteria andSuffixNotBetween(String value1, String value2) {
            addCriterion("suffix not between", value1, value2, "suffix");
            return (Criteria) this;
        }


        public Criteria andCreateDateIsNull() {
            addCriterion("create_date is null");
            return (Criteria) this;
        }

        public Criteria andCreateDateIsNotNull() {
            addCriterion("create_date is not null");
            return (Criteria) this;
        }

        public Criteria andCreateDateEqualTo(Date value) {
            addCriterion("create_date =", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateNotEqualTo(Date value) {
            addCriterion("create_date <>", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateGreaterThan(Date value) {
            addCriterion("create_date >", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateGreaterThanOrEqualTo(Date value) {
            addCriterion("create_date >=", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateLessThan(Date value) {
            addCriterion("create_date <", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateLessThanOrEqualTo(Date value) {
            addCriterion("create_date <=", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateLike(Date value) {
            addCriterion("create_date like", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateNotLike(Date value) {
            addCriterion("create_date not like", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateIn(List<Date> values) {
            addCriterion("create_date in", values, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateNotIn(List<Date> values) {
            addCriterion("create_date not in", values, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateBetween(Date value1, Date value2) {
            addCriterion("create_date between", value1, value2, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateNotBetween(Date value1, Date value2) {
            addCriterion("create_date not between", value1, value2, "createDate");
            return (Criteria) this;
        }


        public Criteria andFkTaskIdIsNull() {
            addCriterion("fk_task_id is null");
            return (Criteria) this;
        }

        public Criteria andFkTaskIdIsNotNull() {
            addCriterion("fk_task_id is not null");
            return (Criteria) this;
        }

        public Criteria andFkTaskIdEqualTo(String value) {
            addCriterion("fk_task_id =", value, "fkTaskId");
            return (Criteria) this;
        }

        public Criteria andFkTaskIdNotEqualTo(String value) {
            addCriterion("fk_task_id <>", value, "fkTaskId");
            return (Criteria) this;
        }

        public Criteria andFkTaskIdGreaterThan(String value) {
            addCriterion("fk_task_id >", value, "fkTaskId");
            return (Criteria) this;
        }

        public Criteria andFkTaskIdGreaterThanOrEqualTo(String value) {
            addCriterion("fk_task_id >=", value, "fkTaskId");
            return (Criteria) this;
        }

        public Criteria andFkTaskIdLessThan(String value) {
            addCriterion("fk_task_id <", value, "fkTaskId");
            return (Criteria) this;
        }

        public Criteria andFkTaskIdLessThanOrEqualTo(String value) {
            addCriterion("fk_task_id <=", value, "fkTaskId");
            return (Criteria) this;
        }

        public Criteria andFkTaskIdLike(String value) {
            addCriterion("fk_task_id like", value, "fkTaskId");
            return (Criteria) this;
        }

        public Criteria andFkTaskIdNotLike(String value) {
            addCriterion("fk_task_id not like", value, "fkTaskId");
            return (Criteria) this;
        }

        public Criteria andFkTaskIdIn(List<String> values) {
            addCriterion("fk_task_id in", values, "fkTaskId");
            return (Criteria) this;
        }

        public Criteria andFkTaskIdNotIn(List<String> values) {
            addCriterion("fk_task_id not in", values, "fkTaskId");
            return (Criteria) this;
        }

        public Criteria andFkTaskIdBetween(String value1, String value2) {
            addCriterion("fk_task_id between", value1, value2, "fkTaskId");
            return (Criteria) this;
        }

        public Criteria andFkTaskIdNotBetween(String value1, String value2) {
            addCriterion("fk_task_id not between", value1, value2, "fkTaskId");
            return (Criteria) this;
        }


        public Criteria andLikeQuery(InfoFile record) {
            List<String> list = new ArrayList<String>();
            List<String> list2 = new ArrayList<String>();
            StringBuffer buffer = new StringBuffer();
            if (record.getId() != null && StrUtil.isNotEmpty(record.getId().toString())) {
                list.add("ifnull(id,'')");
            }
            if (record.getLocationPath() != null && StrUtil.isNotEmpty(record.getLocationPath().toString())) {
                list.add("ifnull(location_path,'')");
            }
            if (record.getFileUrl() != null && StrUtil.isNotEmpty(record.getFileUrl().toString())) {
                list.add("ifnull(file_url,'')");
            }
            if (record.getFileSize() != null && StrUtil.isNotEmpty(record.getFileSize().toString())) {
                list.add("ifnull(file_size,'')");
            }
            if (record.getFileName() != null && StrUtil.isNotEmpty(record.getFileName().toString())) {
                list.add("ifnull(file_name,'')");
            }
            if (record.getFkSubject() != null && StrUtil.isNotEmpty(record.getFkSubject().toString())) {
                list.add("ifnull(fk_subject,'')");
            }
            if (record.getFkRecord() != null && StrUtil.isNotEmpty(record.getFkRecord().toString())) {
                list.add("ifnull(fk_record,'')");
            }
            if (record.getImportantMemo() != null && StrUtil.isNotEmpty(record.getImportantMemo().toString())) {
                list.add("ifnull(important_memo,'')");
            }
            if (record.getSuffix() != null && StrUtil.isNotEmpty(record.getSuffix().toString())) {
                list.add("ifnull(suffix,'')");
            }
            if (record.getCreateDate() != null && StrUtil.isNotEmpty(record.getCreateDate().toString())) {
                list.add("ifnull(create_date,'')");
            }
            if (record.getFkTaskId() != null && StrUtil.isNotEmpty(record.getFkTaskId().toString())) {
                list.add("ifnull(fk_task_id,'')");
            }
            if (record.getId() != null && StrUtil.isNotEmpty(record.getId().toString())) {
                list2.add("'%" + record.getId() + "%'");
            }
            if (record.getLocationPath() != null && StrUtil.isNotEmpty(record.getLocationPath().toString())) {
                list2.add("'%" + record.getLocationPath() + "%'");
            }
            if (record.getFileUrl() != null && StrUtil.isNotEmpty(record.getFileUrl().toString())) {
                list2.add("'%" + record.getFileUrl() + "%'");
            }
            if (record.getFileSize() != null && StrUtil.isNotEmpty(record.getFileSize().toString())) {
                list2.add("'%" + record.getFileSize() + "%'");
            }
            if (record.getFileName() != null && StrUtil.isNotEmpty(record.getFileName().toString())) {
                list2.add("'%" + record.getFileName() + "%'");
            }
            if (record.getFkSubject() != null && StrUtil.isNotEmpty(record.getFkSubject().toString())) {
                list2.add("'%" + record.getFkSubject() + "%'");
            }
            if (record.getFkRecord() != null && StrUtil.isNotEmpty(record.getFkRecord().toString())) {
                list2.add("'%" + record.getFkRecord() + "%'");
            }
            if (record.getImportantMemo() != null && StrUtil.isNotEmpty(record.getImportantMemo().toString())) {
                list2.add("'%" + record.getImportantMemo() + "%'");
            }
            if (record.getSuffix() != null && StrUtil.isNotEmpty(record.getSuffix().toString())) {
                list2.add("'%" + record.getSuffix() + "%'");
            }
            if (record.getCreateDate() != null && StrUtil.isNotEmpty(record.getCreateDate().toString())) {
                list2.add("'%" + record.getCreateDate() + "%'");
            }
            if (record.getFkTaskId() != null && StrUtil.isNotEmpty(record.getFkTaskId().toString())) {
                list2.add("'%" + record.getFkTaskId() + "%'");
            }
            buffer.append(" CONCAT(");
            buffer.append(StrUtil.join(",", list));
            buffer.append(")");
            buffer.append(" like CONCAT(");
            buffer.append(StrUtil.join(",", list2));
            buffer.append(")");
            if (!" CONCAT() like CONCAT()".equals(buffer.toString())) {
                addCriterion(buffer.toString());
            }
            return (Criteria) this;
        }

        public Criteria andLikeQuery2(String searchText) {
            List<String> list = new ArrayList<String>();
            StringBuffer buffer = new StringBuffer();
            list.add("ifnull(id,'')");
            list.add("ifnull(location_path,'')");
            list.add("ifnull(file_url,'')");
            list.add("ifnull(file_size,'')");
            list.add("ifnull(file_name,'')");
            list.add("ifnull(fk_subject,'')");
            list.add("ifnull(fk_record,'')");
            list.add("ifnull(important_memo,'')");
            list.add("ifnull(suffix,'')");
            list.add("ifnull(create_date,'')");
            list.add("ifnull(fk_task_id,'')");
            buffer.append(" CONCAT(");
            buffer.append(StrUtil.join(",", list));
            buffer.append(")");
            buffer.append("like '%");
            buffer.append(searchText);
            buffer.append("%'");
            addCriterion(buffer.toString());
            return (Criteria) this;
        }

    }

    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}